package com.ruoyi.system.service;


import com.ruoyi.system.domain.ArchiveUsagePurpose;

import java.util.List;

/**
 * 档案利用目的统计 Service 接口
 * 封装业务逻辑，供 Controller 调用
 *
 * @author 你的名字
 */
public interface ArchiveUsagePurposeService {
    /**
     * 查询档案利用目的统计列表（支持名称模糊查询）
     *
     * @param purpose 查询条件
     * @return 档案利用目的统计信息列表
     */
    List<ArchiveUsagePurpose> selectArchiveUsagePurposeList(ArchiveUsagePurpose purpose);

    /**
     * 根据主键ID查询档案利用目的统计详情
     *
     * @param id 主键ID
     * @return 档案利用目的统计信息
     */
    ArchiveUsagePurpose selectArchiveUsagePurposeById(Long id);

    /**
     * 新增档案利用目的统计记录
     *
     * @param purpose 要新增的数据
     * @return 操作结果（>0 表示成功）
     */
    int insertArchiveUsagePurpose(ArchiveUsagePurpose purpose);

    /**
     * 修改档案利用目的统计记录
     *
     * @param purpose 要修改的数据（需包含ID）
     * @return 操作结果（>0 表示成功）
     */
    int updateArchiveUsagePurpose(ArchiveUsagePurpose purpose);

    /**
     * 根据主键ID删除单条档案利用目的统计记录
     *
     * @param id 主键ID
     * @return 操作结果（>0 表示成功）
     */
    int deleteArchiveUsagePurposeById(Long id);

    /**
     * 批量删除档案利用目的统计记录
     *
     * @param ids 要删除的主键ID数组
     * @return 操作结果（等于成功删除的记录数）
     */
    int deleteArchiveUsagePurposeByIds(Long[] ids);

    /**
     * 批量保存档案利用目的统计数据（先删除所有旧数据，再插入新数据）
     *
     * @param list 要保存的数据列表
     * @return 操作结果（等于成功插入的记录数）
     */
    int batchSaveArchiveUsagePurpose(List<ArchiveUsagePurpose> list);
}